//宏参数的副作用

#define MAX(a,b) ((a)>(b)?(a):(b))
#include<stdio.h>
int main()
{
	int x, y, z;
	x = 5;
	y = 8;
	z = MAX(x++, y++);
	//宏替换后为：((x++)>(y++)?(x++):(y++))
	//复杂化并且导致结果不是预期要计算的
	printf("x:%d y:%d z:%d\n", x, y, z);
	return 0;
}